Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge NCS to main branch #163

Merged
merged 69 commits into from
Jan 9, 2025
Merged

Merge NCS to main branch #163

merged 69 commits into from
Jan 9, 2025

Conversation

robertstypa
Copy link
Collaborator

Merge NCS to main branch

ref: NCSDK-31099

Signed-off-by: Robert Stypa [email protected]

robertstypa and others added 30 commits April 5, 2024 12:47
Ref: NCSDK-26629

Signed-off-by: Robert Stypa <[email protected]>
Ref: NCSDK-26629

Signed-off-by: Robert Stypa <[email protected]>
* feat: migration to NCS

Ref: NCSDK-26629

Signed-off-by: Robert Stypa <[email protected]>
The class ID check verifies if manifest with given class ID can operate
on the installed manifest component, not the class ID of the component.

Signed-off-by: Tomasz Chyrowicz <[email protected]>
* ncs: Move some options to Kconfig.sysbuild

Some options fit better into sysbuild, as those options affect the
entire system. For example, manifest creation involves integrating
artifacts from multiple domains into one artifact.

Added Kconfig that can be enabled by the local firmware build called
SUIT_LOCAL_ENVELOPE_GENERATE which enables local envelope creation.

Signed-off-by: Rafał Kuźnia <[email protected]>

* templates: align flash companion template variable

The old name flash_companion_subimage is no longer used. Instead, the
build system automatically includes all core information into manifest
rendering process. The information can be accessed using the application
name without suffixes.

* feat (build system): require explicit Kconfig path

Previously the path to .config file was derived from the edt.pickle
path.
In sysbuild we want to be able to access the sysbuild Kconfig namespace.
However, the sysbuild run does not generate the edt.pickle file.
Therefore it is necessary to be able to provide a path to the .config
file without providing the edt.pickle.

The edt.pickle field is now optional in --core parameter.
Binary field is also optional.
If left empty, the utility will not attempt to open the pickle file and
devicetree and binary path information will not be supplied to the
template generator.

Signed-off-by: Rafał Kuźnia <[email protected]>

* templates: use Kconfigs from sysbuild namespace

Some Kconfigs were moved from application to the sysbuild namespace.
Modified the templates to reference the moved Kconfigs using the
sysbuild target.

Signed-off-by: Rafał Kuźnia <[email protected]>

---------

Signed-off-by: Rafał Kuźnia <[email protected]>
* fix: allow usage of custom vid/cid

Ref: NCSDK-27373

Signed-off-by: Robert Stypa <[email protected]>
Add optional arguments, allowing to provide SUIT storage address as well
as update candidate info address through command line.

Ref: NCSDK-26649

Signed-off-by: Tomasz Chyrowicz <[email protected]>
Remove legacy commands from the SUIT generator commands.

Ref: NCSDK-26649

Signed-off-by: Tomasz Chyrowicz <[email protected]>
* feat: remove workarounds for broken DTS parent address
* feat: remove unused suit envelope templates

Ref: NCSDK-22645

Signed-off-by: Robert Stypa <[email protected]>
Ref: NCSDK-26627

Signed-off-by: Artur Hadasz <[email protected]>
* feat: enable local envelope generation only for rad and app
* fix: workaround for radio build as main application

Ref: NCSDK-27372

Signed-off-by: Robert Stypa <[email protected]>
suit-generator now prints an error when the build has two images with
the same CONFIG_SUIT_ENVELOPE_TARGET.

Signed-off-by: Rafał Kuźnia <[email protected]>
It is worth checking if all dependency manifests were correctly
downloaded prior suit-install sequence execution.

Ref: NCSDK-NONE

Signed-off-by: Tomasz Chyrowicz <[email protected]>
The file name component of the binary file can now be used in manifest
generator.

Signed-off-by: Rafał Kuźnia <[email protected]>
Split CLI and module logger configuration
Ref: NONE

Signed-off-by: Robert Stypa <[email protected]>
Previously, the envelope digest used in the parent envelope was
calculated using the same algorithm as the digest for the child
envelope authentication block.

Now the digest algorithms used in the parent and child manifests are
separate.
The sign script can now decode private keys in der format.
The key format is now recognized by the file extension.
Added support for ed448 EdDSA algorithm.
The flash companion is not used in default configurations.

Signed-off-by: Rafał Kuźnia <[email protected]>
Streaming operations, such as calculating the digest or
suit-directive-copy are now executed at least twice.

This increases the robustness of the update process and may prevent the
device from entering the recovery state when a bit flip occurs during
the streaming operation, but the update candidate is correct and
uncorrupted. In such cases, the bit flip is recoverable.
The device will repeat the streaming operation with the hope that the
bit flip does not occur again.
One source of recoverable bit flips may be interference on the SPI bus
when streaming from external memory, or a bit flip when writing
a candidate to NVM.

Signed-off-by: Rafał Kuźnia <[email protected]>
* feat (cmd_image): store only unique cid to role mapping

Ref: NCSDK-27289

Signed-off-by: Robert Stypa <[email protected]>
Add validation for duplicate vid/cid combinations in KConfig file and update corresponding test

Ref: NCSDK-28254

Signed-off-by: Robert Stypa <[email protected]>
The features from this file can be reused for encryption,
so keeping the "authentication" name would be misleading.

Ref: NCSDK-28258

Signed-off-by: Artur Hadasz <[email protected]>
Ref: NCSDK-28258

Signed-off-by: Artur Hadasz <[email protected]>
Ref: NCSDK-28258

Signed-off-by: Artur Hadasz <[email protected]>
ahasztag and others added 19 commits September 4, 2024 14:00
The indents should be tabs (for help: tab + 2 spaces)

Ref: NCSDK-28881

Signed-off-by: Artur Hadasz <[email protected]>
SCFW uses dedicated VERSION file with different schema, so it is
necessary to add dedicated handlers for it.

Ref: NCSDK-28945

Signed-off-by: Tomasz Chyrowicz <[email protected]>
* refactor: alignments with Flake8, Black and Pydocstyle linters
* refactor: enable static analysis for ncs branch

Ref: None

Signed-off-by: Robert Stypa <[email protected]>
Zephyr uses extraversion to pass both prerelease type and number.

Ref: NCSDK-28945

Signed-off-by: Tomasz Chyrowicz <[email protected]>
Also modifications to the suit-generator convert command
due to API changes.

Ref: NCSDK-29056

Signed-off-by: Artur Hadasz <[email protected]>
Needed mostly for creation of a separate .zip file,
but also allows to simplify the configuration
of a recovery application.

Ref: NCSDK-29206

Signed-off-by: Artur Hadasz <[email protected]>
Add support for generating manifests with new suit-install key value.

Ref: NCSDK-NONE

Signed-off-by: Tomasz Chyrowicz <[email protected]>
Ref: NCSDK-NONE

Signed-off-by: Håkon Amundsen <[email protected]>
The payload allows for extracting/removing/replacing integrated
payloads in the envelope.

Ref: NCSDK-29708

Signed-off-by: Artur Hadasz <[email protected]>
Ref: NCSDK-30031

Signed-off-by: Krzysztof Szromek <[email protected]>
Ref: NCSDK-29998

Signed-off-by: Artur Hadasz <[email protected]>
This commit extends the suit-generator cache_create command.

It now has three subcommands: from_payloads, from_envelopei and merge.

from_payload has the same functionality as the old version of
the cache_create command

from_envelope allows extracting payloads directly from the envelope
- also with the possibility to parse the envelope hierarchically
and omit certain payloads.

merge allows to merge multiple cache partition files into one.

Ref: NCSDK-28932

Signed-off-by: Artur Hadasz <[email protected]>
Use sysbuild to build and configure SUIT Manifest Provisioning
Information.

Ref: NCSDK-30461

Signed-off-by: Tomasz Chyrowicz <[email protected]>
Removed the usage of nrfkms from the script.
Instead, a dedicated python script containing a SuitKMS class
should be used.

Ref: NCSDK-30800

Signed-off-by: Artur Hadasz <[email protected]>
Add nRF9280 to suit-generator.

Signed-off-by: Mikko Parpala <[email protected]>
The previous changes were merged with red CI

Signed-off-by: Artur Hadasz <[email protected]>
Allow to set content using integer values inside manifest templates.

Ref: NCSDK-30807

Signed-off-by: Tomasz Chyrowicz <[email protected]>
@NordicBuilder
Copy link
Collaborator

NordicBuilder commented Jan 8, 2025

pytest coverage results

Detailed report:

Type Coverage
lines 89.8% (1902 of 2117 lines)
functions 45.3% (168 of 371 functions)
branches no data found

Note: This message is automatically posted and updated by the CI (latest/test-sdk-dfu/master/299)

Ref: NCSDK-30935

Signed-off-by: Artur Hadasz <[email protected]>
@robertstypa robertstypa merged commit 24dce3c into main Jan 9, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants